基本的な使い方#
このセクションでは, pyvista.examples モジュールと外部ファイルを使って,PyVistaで3Dデータを読み込んでプロットする方法を説明します.
Tip
このチュートリアルのセクションは,PyVistaドキュメントの Basic API Usage の章から採用されています.
既存データの活用#
PyVistaにデータを取り込む方法は主に2つあります.ゼロから自分で作成するか, 互換性のあるファイルフォーマット のいずれかからデータセットを読み込むかです.これから始めるので,ファイルをロードしてみましょう.
もし,サーフェスモデルや点群,VTKファイルのような手近なデータセットがあれば,それを使うことができます.すぐに使えるものがない場合は,PyVistaの pyvista.examples.downloads モジュールでさまざまなファイルをダウンロードすることができます.
ここでは,非常に基本的なデータセットをダウンロードすることができます.
from pyvista import examples
dataset = examples.download_saddle_surface()
dataset
| PolyData | Information |
|---|---|
| N Cells | 5131 |
| N Points | 2669 |
| N Strips | 0 |
| X Bounds | -2.001e+01, 2.000e+01 |
| Y Bounds | -6.480e-01, 4.024e+01 |
| Z Bounds | -6.093e-01, 1.513e+01 |
| N Arrays | 0 |
これは pyvista.PolyData であり,事実上,点,線,面を含むサーフェスデータセットであることに注意してください.このデータセットを使って,すぐにプロットすることができます.
dataset.plot(color='tan')
これはかなり基本的なプロットです. show_edges=True などのパラメータを追加したり, color を別の値に設定して色を変更することで,プロット方法を変更することができます.これらのことは,PyVistaのAPIドキュメントである pyvista.plot() に記載されていますが,ここでは別のデータセットを見てみましょう.これは体積のデータセットです.
dataset = examples.download_frog()
dataset
| Header | Data Arrays | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
This is a pyvista.ImageData, which is a dataset containing a uniform
set of points with consistent spacing. When we plot this dataset, we have the
option of enabling volumetric plotting, which plots individual cells based on
the content of the data associated with those cells.
dataset.plot(volume=True)
注釈
もうお気づきかもしれませんが,オンラインチュートリアルのプロットは,あなたのコンピュータでどのようにプロットしているかによって,あなたのプロットとは少し違って見えるかもしれません.これは使用している jupyter_backend や,jupyter notebook を使用しているかどうかによって異なります.これらの例で遊んでいる間に, notebook を無効にする(または有効にする),あるいはノートブック内で表示するために別のプロットバックエンドを使用するなど,自由に設定を変更してください(該当する場合).
ファイルから読み込む#
コンピュータのローカルにアクセスできるのであれば,ファイルから直接データセットを読み込むことができます.これは,VTKがサポートしている多くのファイルフォーマットの1つであり,PyVistaが meshio のようなライブラリに依存できるように,サポートしていない多くのファイルフォーマットでもあり得ます.
以下の例では,VTKの鉄タンパク質データセット ironProt.vtk を pyvista.read() を使ってファイルからロードしています.
import pyvista as pv
dataset = pv.read('ironProt.vtk')
dataset
| Header | Data Arrays | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
This is again a pyvista.ImageData and we can plot it volumetrically
with:
dataset.plot(volume=True)
レッスン教材#
このページでは,このレッスンにインタラクティブについていけるノートブックのレンダリングを行っています.
演習#
ソリューション#
以上が,上記の例に対する解答です.